﻿Public Class DRTIME
    Dim connect As CONDB = CONDB.NewConnection()
    Dim s As FILTERCLASS
    Dim Sql As String
    Dim PROVIDER_Check As New PROVIDERSCLASS
    Dim datejaja As New FriendsDate()

    Private Sub SearchProviderTxt()
        Dim sql2 As String
        sql2 = "SELECT CAST(`empid` AS CHAR(4)) AS empid, CONCAT_WS(' ', masprename.`ftprename`, hospemp.`name`, hospemp.`lname`) AS 'ชื่อผู้ให้บริการ' FROM hospemp LEFT JOIN masprename ON hospemp.prename = masprename.prename WHERE hospemp.`status` = '1' AND hospemp.f_dr = '1'"
        s = New FILTERCLASS(PROVIDERTxt, sql2, "เลขที่ผู้ให้บริการ,ชื่อ", "50,91", "1,1", "1,1")
        s.SetTagIndex = 0 ' settag
        s.SetTextIndex = 1 'settext
        s.SetShowBorder = True
    End Sub

    Private Sub SelectDatagridDrontime()
        Dim objSelectDataDRONTIME As New DRONTIME
        Dim DRONTIME As DataTable
        datejaja.culTure_TH()
        datejaja.TO_TH()
        DRONTIME = connect.GetTable(objSelectDataDRONTIME.SelectDrontime_)
        DRONTIMEGrid1.PrimaryGrid.DataSource = DRONTIME
    End Sub

    Private Sub DRTIME_Load(sender As Object, e As EventArgs) Handles Me.Load
        SelectDatagridDrontime()
        SearchProviderTxt()

        DesignForm(Me)
        DesignGrid(DRONTIMEGrid1)

        PROVIDER_Check.GETHOSEM(CInt(main.txtUserRequest.Text.Trim), Convert.ToString(Me.Tag))
    End Sub

    Private Sub PROVIDERTxt_TextChanged(sender As Object, e As EventArgs) Handles PROVIDERTxt.TextChanged
        Dim objSelectDataDRONTIME As New DRONTIME
        Dim sql As String
        Dim dt As New DataTable
        If PROVIDERTxt.Text.Length > 0 Then
            'sql = "SELECT `dontid`,provider.`provider` as 'เลขที่ผู้ให้บริการ',`onday`,`statime` as 'เวลาเริ่มออกตรวจ',`fintime` as 'เวลาสิ้นสุดการตรวจ',`ncase` as 'จำนวนรับนัดต่อวัน',`cyctime` as 'จำนวนเวลาต่อราย',drontime.`status` as 'สถานะการเปิดใช้งาน',`st_date` as 'วันที่เริ่มใช้',`fn_date` as 'วันที่เลิกใช้'"
            'sql += ",CASE WHEN(onday =  1) THEN 'วันอาทิตย์'"
            'sql += "ELSE CASE WHEN(onday = 2) THEN 'วันจันทร์'"
            'sql += "ELSE CASE WHEN(onday = 3) THEN 'วันอังคาร'"
            'sql += "ELSE CASE WHEN(onday = 4) THEN 'วันพุธ'"
            'sql += "ELSE CASE WHEN(onday = 5) THEN 'วันพฤหัสบดี'"
            'sql += "ELSE CASE WHEN(onday = 6) THEN 'วันศุกร์'"
            'sql += "ELSE CASE WHEN(onday = 7) THEN 'วันเสาร์'"
            'sql += "ELSE 'วันดี' END END END END END END END AS 'วันที่ออกตรวจ'"
            'sql += "FROM drontime LEFT JOIN (SELECT `provider` FROM provider WHERE `status` = 1) as provider on drontime.`provider` = provider.`provider` where provider.`provider` = '" & Convert.ToString(PROVIDERTxt.Tag).Trim & "'"
            sql = objSelectDataDRONTIME.SelectDrontime_
            sql += "WHERE provider = '" & Convert.ToString(PROVIDERTxt.Tag).Trim & "'"
            dt = connect.GetTable(sql)
            DRONTIMEGrid1.PrimaryGrid.DataSource = dt
        Else
            'sql = "SELECT `dontid`,provider.`provider` as 'เลขที่ผู้ให้บริการ',`onday`,`statime` as 'เวลาเริ่มออกตรวจ',`fintime` as 'เวลาสิ้นสุดการตรวจ',`ncase` as 'จำนวนรับนัดต่อวัน',`cyctime` as 'จำนวนเวลาต่อราย',drontime.`status` as 'สถานะการเปิดใช้งาน',`st_date` as 'วันที่เริ่มใช้',`fn_date` as 'วันที่เลิกใช้'"
            'sql += ",CASE WHEN(onday =  1) THEN 'วันอาทิตย์'"
            'sql += "ELSE CASE WHEN(onday = 2) THEN 'วันจันทร์'"
            'sql += "ELSE CASE WHEN(onday = 3) THEN 'วันอังคาร'"
            'sql += "ELSE CASE WHEN(onday = 4) THEN 'วันพุธ'"
            'sql += "ELSE CASE WHEN(onday = 5) THEN 'วันพฤหัสบดี'"
            'sql += "ELSE CASE WHEN(onday = 6) THEN 'วันศุกร์'"
            'sql += "ELSE CASE WHEN(onday = 7) THEN 'วันเสาร์'"
            'sql += "ELSE 'วันดี' END END END END END END END AS 'วันที่ออกตรวจ'"
            'sql += "FROM drontime LEFT JOIN (SELECT `provider` FROM provider WHERE `status` = 1) as provider on drontime.`provider` = provider.`provider`"
            sql = objSelectDataDRONTIME.SelectDrontime_
            dt = connect.GetTable(sql)
            DRONTIMEGrid1.PrimaryGrid.DataSource = dt
        End If

    End Sub

    Private Sub queryByProvider()
        Dim objSelectDataDRONTIME As New DRONTIME
        Dim sql As String
        Dim dt As New DataTable

        'sql = "SELECT `dontid`,provider.`provider` as 'เลขที่ผู้ให้บริการ',`onday`,`statime` as 'เวลาเริ่มออกตรวจ',`fintime` as 'เวลาสิ้นสุดการตรวจ',`ncase` as 'จำนวนรับนัดต่อวัน',`cyctime` as 'จำนวนเวลาต่อราย',drontime.`status` as 'สถานะการเปิดใช้งาน',`st_date` as 'วันที่เริ่มใช้',`fn_date` as 'วันที่เลิกใช้'"
        'sql += ",CASE WHEN(onday =  1) THEN 'วันอาทิตย์'"
        'sql += "ELSE CASE WHEN(onday = 2) THEN 'วันจันทร์'"
        'sql += "ELSE CASE WHEN(onday = 3) THEN 'วันอังคาร'"
        'sql += "ELSE CASE WHEN(onday = 4) THEN 'วันพุธ'"
        'sql += "ELSE CASE WHEN(onday = 5) THEN 'วันพฤหัสบดี'"
        'sql += "ELSE CASE WHEN(onday = 6) THEN 'วันศุกร์'"
        'sql += "ELSE CASE WHEN(onday = 7) THEN 'วันเสาร์'"
        'sql += "ELSE 'วันดี' END END END END END END END AS 'วันที่ออกตรวจ'"
        'sql += "FROM drontime LEFT JOIN (SELECT `provider` FROM provider WHERE `status` = 1) as provider on drontime.`provider` = provider.`provider` where provider.`provider` = '" & Convert.ToString(PROVIDERTxt.Tag).Trim & "'"
        sql = objSelectDataDRONTIME.SelectDrontime_
        sql += "WHERE provider = '" & Convert.ToString(PROVIDERTxt.Tag).Trim & "'"
        dt = connect.GetTable(sql)
        DRONTIMEGrid1.PrimaryGrid.DataSource = dt
    End Sub

    Private Sub DRONTIMEGrid1_CellClick(sender As Object, e As DevComponents.DotNetBar.SuperGrid.GridCellClickEventArgs) Handles DRONTIMEGrid1.CellClick
        Dim grid As DevComponents.DotNetBar.SuperGrid.GridRow
        grid = e.GridPanel.ActiveRow
        'If grid.Cells("เลขที่ผู้ให้บริการ").Value() IsNot DBNull.Value Then
        '    PROVIDERTxt.Tag = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("เลขที่ผู้ให้บริการ").Value()
        'Else
        '    PROVIDERTxt.Tag = ""
        'End If
        'If grid.Cells("เลขที่ผู้ให้บริการ").Value() IsNot DBNull.Value Then
        '    PROVIDERTxt.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("เลขที่ผู้ให้บริการ").Value()
        'Else
        '    PROVIDERTxt.Text = ""
        'End If
        'MsgBox(CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("billid").Value())
        If grid.Cells("dontid").Value() IsNot DBNull.Value Then
            DONTIDTxt.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("dontid").Value.ToString()
        Else
            DONTIDTxt.Text = ""
        End If

        'ไม่ใช้ เพราะมีปัญหากับ text change
        'If grid.Cells("รหัสผู้ให้บริการ").Value() IsNot DBNull.Value Then
        '    PROVIDERTxt.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("ชื่อผู้ให้บริการ").Value.ToString()
        '    'PROVIDERTxt.Tag = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("รหัสผู้ให้บริการ").Value.ToString()
        'Else
        '    PROVIDERTxt.Clear()
        '    'PROVIDERTxt.Tag = Nothing
        'End If

        '------onday-------
        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 1 Then
            Sunday.Checked = True
        Else
            Sunday.Checked = False
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 2 Then
            Monday.Checked = True
        Else
            Monday.Checked = False
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 3 Then
            Tuesday.Checked = True
        Else
            Tuesday.Checked = False
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 4 Then
            Wednesday.Checked = True
        Else
            Wednesday.Checked = False
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 5 Then
            Thursday.Checked = True
        Else
            Thursday.Checked = False
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 6 Then
            Friday.Checked = True
        Else
            Friday.Checked = False
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("onday").Value() = 7 Then
            Saturday.Checked = True
        Else
            Saturday.Checked = False
        End If

        '---------end of onday------------

        'If grid.Cells("เวลาเริ่มออกตรวจ").Value() IsNot DBNull.Value Then
        '    MSTARTIME.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("เวลาเริ่มออกตรวจ").Value.ToString()
        'Else
        '    MSTARTIME.Text = ""
        'End If

        'If grid.Cells("เวลาสิ้นสุดการตรวจ").Value() IsNot DBNull.Value Then
        '    MFINTIME.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("เวลาสิ้นสุดการตรวจ").Value.ToString()
        'Else
        '    MFINTIME.Text = ""
        'End If

        'If grid.Cells("จำนวนรับนัดต่อวัน").Value() IsNot DBNull.Value Then
        '    NCASETxt.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("จำนวนรับนัดต่อวัน").Value()
        'Else
        '    NCASETxt.Text = ""
        'End If

        'If grid.Cells("จำนวนเวลาต่อราย").Value() IsNot DBNull.Value Then
        '    CYCTIMETxt.Text = CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("จำนวนเวลาต่อราย").Value()
        'Else
        '    CYCTIMETxt.Text = ""
        'End If

        If grid.Cells("วันที่เริ่มใช้").Value() IsNot DBNull.Value Then
            'If CType(e.GridPanel.ActiveRow, DevComponents.DotNetBar.SuperGrid.GridRow).Cells("วันที่เริ่มใช้").Value() IsNot DBNull.Value Then
            STTDATE.Value = Convert.ToDateTime(CType(e.GridPanel.ActiveRow, DevComponents.DotNetBar.SuperGrid.GridRow).Cells("วันที่เริ่มใช้").Value())
        Else
            STTDATE.Value = DateAndTime.Now
        End If

        If grid.Cells("วันที่เลิกใช้").Value() IsNot DBNull.Value Then
            'If CType(e.GridPanel.ActiveRow, DevComponents.DotNetBar.SuperGrid.GridRow).Cells("วันที่เลิกใช้").Value() IsNot DBNull.Value Then
            EXPDATE.Value = Convert.ToDateTime(CType(e.GridPanel.ActiveRow, DevComponents.DotNetBar.SuperGrid.GridRow).Cells("วันที่เลิกใช้").Value())
        Else
            EXPDATE.Value = DateAndTime.Now
        End If

        If CType(e.GridPanel.Rows(e.GridCell.RowIndex), DevComponents.DotNetBar.SuperGrid.GridRow).Cells("สถานะการเปิดใช้งาน").Value() = True Then
            drontimestatuscheck.Checked = True
        Else
            drontimestatuscheck.Checked = False
        End If



        connect = CONDB.NewConnection()
        If e.GridCell.GridColumn.Name = "สถานะการเปิดใช้งาน" Then
            Try
                Dim Sql As String
                connect.BeginTrans()
                Sql = "UPDATE drontime SET "
                If Convert.ToBoolean(CType(e.GridPanel.ActiveRow, DevComponents.DotNetBar.SuperGrid.GridRow).Cells("สถานะการเปิดใช้งาน").Value()) = True Then
                    Sql += "`status` = 1 "
                Else
                    Sql += "`status` = 0 "
                End If
                Sql += "WHERE `dontid` = '" & DONTIDTxt.Text & "' ;"
                connect.ExecuteNonQuery(Sql)
                connect.CommitTrans()
            Catch ex As Exception
                connect.RollbackTrans()
                MsgBox(ex.ToString)
            End Try
        End If
    End Sub

    Private Sub editfrontime_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
        'MsgBox("'" & MSTARTIME.Text & "'")
        If main.PROVIDERPOLICIES.checklogin_user_ = True Then
            If PROVIDER_Check.PADD_ = True Then
                If DONTIDTxt.Text.Length > 0 Then
                    Dim editStat As Integer
                    editStat = MsgBox("ท่านต้องการแก้ไขข้อมูลตารางออกตรวจดังกล่าวใช่หรือไม่", MsgBoxStyle.OkCancel)
                    If editStat = 1 Then
                        Dim objeditData As New DRONTIME
                        objeditData.DONTID_ = DONTIDTxt.Text
                        objeditData.STATIME_ = MSTARTIME.Text
                        objeditData.FINTIME_ = MFINTIME.Text

                        If NCASETxt.Text = "" Then
                            objeditData.NCASE_ = 0
                        Else
                            objeditData.NCASE_ = NCASETxt.Text
                        End If

                        If CYCTIMETxt.Text = "" Then
                            objeditData.CYCTIME_ = 0
                        Else
                            objeditData.CYCTIME_ = CYCTIMETxt.Text
                        End If


                        objeditData.STTDATE_ = DateAdd(DateInterval.Year, -543, STTDATE.Value).ToString("yyyy/MM/dd")
                        objeditData.EXPDATE_ = DateAdd(DateInterval.Year, -543, EXPDATE.Value).ToString("yyyy/MM/dd")
                        objeditData.STATUS_ = drontimestatuscheck.Checked

                        objeditData.editDrontimedata()

                        queryByProvider()

                        'cleardata()

                    End If
                Else
                    MsgBox("โปรดระบุข้อมูลให้ครบถ้วน", MsgBoxStyle.Critical)
                End If
            Else
                MsgBox(PROVIDER_Check.PADDMSG_)
            End If
        Else
            TOASTCLASS.gloadToastMSG(Me, main.PROVIDERPOLICIES.LOGINUSERMSG_)
            main.txtUserRequest.Focus()
        End If
    End Sub
    Private Sub cleardata()
        DONTIDTxt.Clear()
        PROVIDERTxt.Clear()
        Sunday.Checked = False
        Monday.Checked = False
        Tuesday.Checked = False
        Wednesday.Checked = False
        Thursday.Checked = False
        Friday.Checked = False
        Saturday.Checked = False
        MSTARTIME.ResetText()
        MFINTIME.ResetText()
        NCASETxt.Clear()
        CYCTIMETxt.Clear()
        Dim sqldate As String
        Dim dt As New DataTable
        sqldate = " SELECT CURDATE() "
        dt = connect.GetTable(sqldate)
        STTDATE.Value = Convert.ToDateTime(dt.Rows(0)(0))
        EXPDATE.Value = Convert.ToDateTime(dt.Rows(0)(0))
        btnAdd.Enabled = True
        btnEdit.Enabled = True
    End Sub
    

    Private Sub btnClearForm_Click(sender As Object, e As EventArgs) Handles btnClearForm.Click
        cleardata()
        SelectDatagridDrontime()
    End Sub
End Class